iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

探索 Spring Boot Doc系列 第 11

Doc 6.6 & Doc 6.7.2 Running as a Packaged Application

  • 分享至 

  • xImage
  •  

Doc 6.6. Using the @SpringBootApplication Annotation 提及 @SpringBootApplication 包含了
@EnableAutoConfiguration、@ComponentScan、@SpringBootConfiguration 三種標籤 。
在該系列文章 Day5 Doc 6.3.2 Importing XML Configuration & Doc 6.4 Auto-configuration
關於 @SpringBootApplication source code 可以看到這一點。

另一方面,對於想使用 @ComponentScan@EnableAutoConfiguration 標籤屬性的使用者,
@SpringBootApplication 也提供對應的 @AliasFor (別名) 做選擇。

Doc 6.7.1 Running From an IDE :
官方給出了連結,連向 Eclipse 和 IDEA 。
Eclipse 和 IDEA 可以直接匯入 maven 專案 ,其他的 IDE 可以在安裝 plugin 後,進行匯入 maven 專案,當然 gradle 專案也可以透過 plugin 的方式。

Doc 6.7.2. Running as a Packaged Application:
事前準備,透過 spring initializr 啟一個簡單的Spring 專案,引入Spring Web 依賴,其中只有一個 Controller ,如下所示

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloworldController {
  @GetMapping("/hello")
  public ResponseEntity<String> hello() {
    return new ResponseEntity<>("Hello World", HttpStatus.OK);
  }
}

透過 Spring Boot Gradle or Maven 套件可以創建Spring 應用的可執行 jar 包。
實務上透過 spring initialzr 選擇 gradle 的專案內附 gradle wrapper ,故只要執行下方指令就能 build jar 包。

$ ./gradlew build

build 出現的 jar 包,會出現在 build/libs 目錄之下
https://ithelp.ithome.com.tw/upload/images/20230926/20161770gMIDPWATRe.png

再透過以下 java 指令去執行該 jar 包

java -jar helloworld-0.0.1.jar

https://ithelp.ithome.com.tw/upload/images/20230926/20161770eE1D2JMSa6.png
下方透過指令啟動jar包
https://ithelp.ithome.com.tw/upload/images/20230926/20161770u8qfnmIETW.png
在執行應用的 jar 包的時候, 可以透過以下指令附加(attach) debugger 模式,注意下方圖中的紅色箭頭處,Listening for transport dt_socket at address:8080

$ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \
       -jar helloworld-0.0.1.jar

Debug Mode 指令執行結果
https://ithelp.ithome.com.tw/upload/images/20230926/20161770TixRiEtWIh.png
參考資料
{官方} Running as a Packaged Application 文檔
https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.using-the-springbootapplication-annotation

java Application Remote Debugging
https://www.baeldung.com/java-application-remote-debugging


上一篇
Doc 6.5 Spring Beans and Dependency Injection (二)
下一篇
Doc 6.8.1. Diagnosing Classloading Issues(ㄧ)
系列文
探索 Spring Boot Doc30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言